#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Author:Zhangcl
from  multiprocessing import Process, Pool
import time
import os

def Foo(i):
    time.sleep(2)
    print('in process', os.getpid())
    return i + 100



def Bar(arg):
    print('-->exec done:', arg,os.getpid()) #回调的PID,就是主线程的PID

if __name__ == '__main__':
    pool = Pool(5) #允许进程池同时放入5个进程
    print('主线程pid：',os.getpid())
    for i in range(10):
        pool.apply_async(func=Foo, args=(i,), callback=Bar)#callback表示回调，func执行完毕就会调用callback
         #pool.apply(func=Foo, args=(i,))

    print('end')
    pool.close()
    pool.join()  # 进程池中进程执行完毕后再关闭，如果注释，那么程序直接关闭。